package com.ruoyi.oto.domain;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.oto.constants.DemandsDepartStatus;
import com.ruoyi.oto.constants.YsOpinion;
import lombok.*;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;

@EqualsAndHashCode(callSuper = true)
@Data
@TableName("demands_depart")
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class DemandsDepart  extends BaseEntity<DemandsDepart> {

    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 诉求ID
     */
    private Long demandsId;
    /**
     * 诉求标题
     */
    private String demandsTitle;
    /**
     * 诉求内容
     */
    private String demandsContent;
    /**
     * 诉求图片
     */
    private String images;
    /**
     * 联企人员备注
     */
    private String checkMessage;
    /**
     * 企业ID
     */
    private Long companyId;
    /**
     * 企业名称
     */
    private String companyName;
    /**
     * 受理状态  受理/处置 1  驳回/转部门  2 完成
     */
    private Integer status;
    /**
     * 受理时间
     */
    private Date acceptTime;
    /**
     * 职能部门ID
     */
    private Long branchId;
    /**
     * 职能部门名称
     */
    private String branchName;
    /**
     * 转入部门id
     */
    private Long upBranchId;
    /**
     * 转入部门名称
     */
    private String upBranchName;
    /**
     * 转出部门ID
     */
    private Long toBranchId;
    /**
     * 转出部门名称
     */
    private String toBranchName;
    /**
     * 受理内容
     */
    private String acceptContent;
    /**
     * 营商部门意见  0 初始化状态 1 营商中心介入中  2 营商中心介入完成
     */
    private Integer ysStatus;

    /**
     * 结束类型 1 企业结束 2 营商中心结束
     */
    private Integer finishType;
    /**
     * 结束人ID
     */
    private Long finishId;
    /**
     * 结束名字
     */
    private String finishName;

    /**
     * 此诉求的批注数量
     */
    @TableField(exist = false)
    private Integer totalAnnos;

    @TableField(exist = false)
    private String currentStatus;

    public String getCurrentStatus() {
        if(status== DemandsDepartStatus.未处置){
            return "未处置";
        }
        else if(status==DemandsDepartStatus.受理_处置){
            return "处置中";
        }
        else if(status==DemandsDepartStatus.驳回_转部门){
           if(ysStatus== YsOpinion.受理中){
               if(StrUtil.isNotEmpty(toBranchName)){
                   return "转部门到"+toBranchName+"（营商中心受理中）";
               }
               return "驳回（营商中心受理中）";
           }
           else if(ysStatus==YsOpinion.同意){
               if(StrUtil.isNotEmpty(toBranchName)){
                   return "已转部门到"+toBranchName;
               }
               return "已驳回";
           }
        }
        else if(status==DemandsDepartStatus.完成){
            if(ysStatus== YsOpinion.受理中){
                return "完成（营商中心受理中）";
            }
            else if(ysStatus==YsOpinion.同意){
                return "已完成";
            }
        }
        return "";
    }
}
